﻿#region using
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Media;
#endregion

namespace AwesomeTanks.Sources.Media
{
    /// <summary>
    /// The Class where all sounds
    /// </summary>
    public class Sound
    {
        #region Fields
        /// <summary>
        /// The default volume of the songs (menu, game and boss)
        /// </summary>
        public const float SONG_VOLUME = 0.2f;
        /// <summary>
        /// The default volume of the sound effects.
        /// </summary>
        public const float SOUNDEFFECT_VOLUME = 0.15f;

        public static Song InGameMusic { get; private set; }
        public static Song MenuMusic { get; private set; }

        // Menu Soundeffects
        public static SoundEffect Pineapple { get; private set; }
        public static SoundEffect MenuSelect { get; private set; }
        public static SoundEffect MenuBack { get; private set; }
        public static SoundEffect ItsOver9000 { get; private set; }

        // Game Soundeffects
        public static SoundEffect GatlingShot { get; private set; }
        public static SoundEffect RocketShot { get; private set; }
        public static SoundEffect TankExplosion { get; private set; }
        public static SoundEffect Respawn { get; private set; }
        public static SoundEffect CountDown { get; private set; }
        public static SoundEffect GameOver { get; private set; }
        public static SoundEffect Demacia { get; private set; }
        public static SoundEffect KohLanta { get; private set; }
        public static SoundEffect Bela { get; private set; }

        #endregion

        #region Methods
        /// <summary>
        /// Loads the specified content.
        /// </summary>
        /// <param name="content">The content.</param>
        public static void Load(ContentManager content)
        {
            MenuMusic = content.Load<Song>(@"Menus/Audios/Menu");
            InGameMusic = content.Load<Song>(@"Game/Audios/Sounds/InGame");
            Pineapple = content.Load<SoundEffect>(@"Menus\Audios\Pineapple");
            MenuSelect = content.Load<SoundEffect>(@"Menus\Audios\MenuSelect");
            MenuBack = content.Load<SoundEffect>(@"Menus\Audios\MenuBack");
            ItsOver9000 = content.Load<SoundEffect>(@"Menus\Audios\ItsOver9000");

            GatlingShot = content.Load<SoundEffect>(@"Game\Audios\SoundEffects\Pew");
            RocketShot = content.Load<SoundEffect>(@"Game\Audios\SoundEffects\RocketShot");
            Respawn = content.Load<SoundEffect>(@"Game\Audios\SoundEffects\Respawn");
            TankExplosion = content.Load<SoundEffect>(@"Game\Audios\SoundEffects\TankExplosion");
            CountDown = content.Load<SoundEffect>(@"Game\Audios\SoundEffects\Countdown");
            GameOver = content.Load<SoundEffect>(@"Game\Audios\SoundEffects\GameOver");
            Demacia = content.Load<SoundEffect>(@"Game\Audios\SoundEffects\Demacia");
            KohLanta = content.Load<SoundEffect>(@"Game\Audios\SoundEffects\KohLanta");
            Bela = content.Load<SoundEffect>(@"Game\Audios\SoundEffects\Bela");
        }
        #endregion
    }
}
